home *** CD-ROM | disk | FTP | other *** search
- procedure PatchExe(const aFile: String; aSerial: Longint);
- var
- aPos : Longint;
- aStream : TMemoryFileStream;
- begin
- aStream := TMemoryFileStream.Create(aFile, fmOpenReadWrite);
- try
- aPos := PosBM('*MyPatch*',aStream.Memory^, aStream.Size);
- if aPos <> - 1 then
- { - 1 for Length byte ! }
- PPatch(PChar(aStream.Memory)+aPos-1)^.Serial := aSerial;
- finally
- aStream.Free;
- end;
- end;